The present invention relates to network management in general and in particular to application program management on a computer network.
Traditional mainframe computer configurations provided for user interface to the computer through computer terminals which were directly connected by wires to ports of the mainframe computer. As computing technology has evolved, processing power has typically evolved from a central processing center with a number of relatively low-processing power terminals to a distributed environment of networked processors. Examples of this shift in processing include local or wide area computer networks which interconnect individual work stations where each workstation has substantial independent processing capabilities. This shift may be further seen in the popularity of the Internet which interconnects many processors and networks of processors through devices such as, for example, routers. This type of network environment is often referred to as a client-server environment with client stations coupled to and supported by a server station.
In the modern distributed processing computer environment, control over software, such as application programs, is more difficult than where a mainframe operated by an administrator is used, particularly for large organizations with numerous client stations and servers distributed widely geographically and utilized by a large number of users. Furthermore, individual users may move from location to location and need to access the network from different client stations at different times. The networked environment increases the challenges for a network administrator in maintaining proper licenses for existing software and deploying new or updated applications programs across the network.
One approach to reducing software distribution and control problems is to use an application server in which the application programs are installed and maintained on a centralized server which supports a plurality of client stations. In addition, the Systems Management Server (SMS) program from Microsoft Corporation provides an ability to transmit an application program from a server to a number of clients. The SMS system typically allows installation of programs and associated icons at client stations for SMS-enabled applications. A customized install generally must be created by a system administrator for each different version to be installed. Furthermore, once installed at a client, a user must typically use that specific client station. The application generally cannot be automatically deleted from the client station""s desktop or automatically upgraded the next time the user starts the application. Similarly, the Tivoli Management Environment (TME) 10(trademark) system from Tivoli Systems, Inc. provides a software distribution feature which may be used to transmit a file package to client and server stations on a network from a central Tivoli(trademark) server.
A further complication in network systems is that, typically, these systems include combinations of network applications and native applications as well as combinations of different connection types and hardware devices. As used herein xe2x80x9cnative applicationsxe2x80x9d refers to applications which are installed locally on a workstation such that characteristics associated with the native application are stored on the workstation. The combinations of network connections, differing hardware, native applications and network applications makes portability of preferences or operating environment characteristics which provide consistency from workstation to workstation difficult. Furthermore, differences in hardware or connections may create inefficiencies as users move from workstation to workstation. For example, a user may, in a first session, access the network utilizing a high speed connection and a workstation with a high resolution color monitor to execute an application and then, in a later session, access the network to execute the same application from a mobile computer with a monochrome display and a low speed modem connection to the network. Thus, session content, such as color display data or preferences associated with the application, which may have been appropriate for the first session, may be inappropriate or inefficient in a later session.
Efforts to address mobility of uses in a network have included efforts to provide preference mobility such as, for example, Novell""s Z.E.N.works(trademark), Microsoft""s xe2x80x9cZero Administrationxe2x80x9d initiative for Windows(copyright) and International Business Machines Corporation""s (IBM""s) Workspace On Demand(trademark). However, these solutions each typically require pre-installation of software at the workstation to support their services. For example, Novell""s Z.E.N. and IBM""s Workspace On Demand utilize a designer-supplied support layer in the operating system to enable their services. In addition to modifying the workstations operating system at startup to setup tasks to customize the user""s environment, the Microsoft Zero Administration solution may be limited to a homogeneous environment where the workstation and the server are utilizing the same operating system.
Another approach to centralized management is the traditional mainframe model, such as with the IBM 3270 system, or an X Windows environment. However, in each of these approaches, the client device is treated as a dumb terminal with execution of the applications occurring at the server rather than the client. Accordingly, the communication between the server and the client is typically presenting characters for a display screen of the client and/or receiving key strokes from the client. Windows Zero Administration, as described above, is client rather than user oriented and installs applications on client stations which do not fully support roaming by users. The JAVA(trademark) environment utilized on the Internet for web applications provides an ability for hardware independent application development but fails to provide an integrated framework for presenting multiple independent applications to a user. While various web applications do allow personalizing of a specific application display by user, this capability is generally not managed across applications for a user. Furthermore, it typically associates personalized screen information with an Internet address which is client device rather than user associated, therefore limiting its ability to support roaming by users.
Each of these xe2x80x9cmobilityxe2x80x9d systems typically do not address the full range of complications which may arise in a heterogeneous network utilizing differing devices and connections. The systems typically will not present application choices associated with the user and for which the user is authorized but instead present information associated with the particular client workstation. Users would typically have to manually define session characteristics at each differing workstation they used in the network or maintain local characteristic definitions which may be inappropriate for particular applications a user is executing and may substantially reduced the administrative convenience of a centrally controlled network. Thus, these various approaches fail to provide a seamless integration of application access and session characteristics across heterogeneous networks. Such solutions may, at most, reduce network administration only after initial installation on each workstation. In addition, control over access to applications by users is difficult to accomplish in a mobile environment.
An additional user based application management capability not fully supported by these various approaches is license use management. License use management typically involves controlling how many users can use an application. A distributed network environment with a plurality of client stations and a plurality of different users accessing the applications from different clients increases the challenge associated with managing license use to insure compliance with limitations established by software designers. These environments also typically require various steps in the installation process to occur at different locations rather than allowing the entire process to be controlled from a single point for an entire managed network environment.
Accordingly, it is an object of the present invention to provide methods, systems and computer program products for management of configurable application programs on a computer network which allow a mix of user and system administrator defined configurable preferences to be associated with specific application programs.
It is a further object of the present invention to provide such methods, systems and computer program products that can accommodate various types of hardware operating under different operating systems across client stations.
These and other objects are provided, according to the present invention, by providing two program files for each configurable application program which are provided to a network server station which operates as an on-demand server for software deployment and may also act as the application server. The on-demand server makes the first, or configuration manager, program available to an administrator classified user (either remotely at a client station or at a direct interface to the server station) to provide an interface to establish preferences for the configurable preferences of the application program which have been designated as administrator only settable. The on-demand server also provides a second, or application launcher, program to client stations on the network and served by the on-demand server. The application launcher program not only provides for a user interface to execute the application program itself but also allows a user to specify one or more of the configurable parameters of the application program. An icon is displayed on the screen of the client station through which a user may initiate execution of the application program. The on-demand application launcher may also obtain a license for the requesting user before initiating execution thereby providing centralized license management support.
The application launcher program first determines the user identity (ID) and provides the user information to the server along with the request to initiate execution of the application program. The application program is then executed using stored values for the user and administrator set preferences or, if no preferences have yet been obtained for the particular user (or new preferences are desired), user preferences are obtained before initiating execution of the application program itself. A profile manager program on the on-demand server provides a user interface and maintains profile information for each client (hardware related) and user (preferences) for all managed configurable application programs available on the on-demand server. The profile manager program may also control access to various applications based on user authorization information.
In one embodiment of the present invention methods, systems and computer program products are provided for management of configurable application programs on a network. An application program having a plurality of configurable preferences and a plurality of authorized users is installed on a server coupled to the network. An application launcher program associated with the application program is distributed to a client coupled to the network. A user set of the plurality of configurable preferences associated with one of the plurality of authorized users executing the application launcher program is obtained and an administrator set of the plurality of configurable preferences is obtained from an administrator. The application program is then executed using the obtained user set and the obtained administrator set of the plurality of configurable preferences responsive to a request from the one of the plurality of authorized users. The request may be received from the one of the plurality of authorized users through the application launcher program.
In another embodiment of the present invention, a configuration manager program associated with the application program is distributed to a second client coupled to the network and the administrator set of the plurality of configurable preferences is obtained from an administrator executing the configuration manager program. The administrator may be one of the plurality of authorized users who is authorized to execute the configuration manager program. In one embodiment of the present invention, an icon associated with the application program is displayed on a screen-of the client and an authorized user may execute the application launcher program by selecting the displayed icon.
In one embodiment of the present invention, obtained user sets and obtained administrator sets are stored on a storage device coupled to the server and retrieved from the storage device when initiating execution of the application program. Default preference values may be provided and used for any of the plurality of configurable preferences which are not specified by the user set or the administrator set. Furthermore, the default preference values may be also be stored on the storage device coupled to the server.
In a further aspect of the present invention, security may be provided by determining if a user requesting execution of the application program is one of the plurality of authorized users. This aspect may also be combined with the license use management aspects of the present invention to further control access to managed application programs.
In another embodiment of the present invention, additional application programs are managed according to the teachings of the present invention along with user preferences obtained from a plurality of users. Furthermore, for each application program, associated application launcher programs may be distributed to a plurality of client stations and obtain user preferences from a plurality of users.
In a further embodiment of the present invention, methods, systems and computer program products are provided for management of configurable application programs on a network. An application program having a plurality of configurable preferences and a plurality of authorized users is installed on a server and an application launcher program associated with the application program is distributed to a client. A user set of the plurality of configurable preferences is obtained from one of the plurality of authorized users executing the application launcher program and an administrator set of the plurality of configurable preferences is obtained from an administrator The application program is then executed using a stored user set and the administrator set of the plurality of configurable preferences responsive to a request from the one of the plurality of authorized users.
In another embodiment of the present invention, methods, systems and computer program products are provided for management of configurable application programs on a network including receiving an application launcher program associated with an application program having a plurality of configurable preferences from a server. A user set of the plurality of configurable preferences from one of the plurality of authorized users executing the application launcher program is provided to the server. The server is also requested to provide an instance of the application program and a stored user set and an administrator set of the plurality of configurable preferences for use in executing the application program responsive to a request from the one of the plurality of authorized users.
In a further aspect of the present invention, methods, systems and computer program products are provided for management of license use for a network. License management policy information for a plurality of application programs is maintained at a license management server. Requests are received at the license management server for a license availability of a selected one of the plurality of application programs from a user at a client. The license management server determines the license availability for the selected one of the plurality of application programs for the user based on the maintained license management policy information and provides an unavailability indication to the client responsive to the selection if the license availability indicates that a license is not available for the user or an availability indication if the licensed availability indicates that a license is available for the user. The request may be received from an application launcher program associated with the selected one of the plurality of application programs and the availability or unavailability indication may be provided to the application launcher program. In one embodiment, the license management server is an on demand server associated with the client which provides an instance of the selected one of the application programs to the client for execution.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and computer program products are also provided.
Accordingly, the present invention provides for management of configurable application programs in a network environment from a central on-demand server location while allowing for user preferences to be tracked independent of hardware location of the user. This provides for reduced costs and increased uniformity in managing software in a network environment by delivering configured applications when demanded by a user. It further provides an essentially hardware transparent ability for an individual user to interface to an on-demand server supported client station while maintaining the user""s personal preferences for each application program.